package com.ruoyi.server.domain.dto;

import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.base.BaseDTO;
import com.ruoyi.common.core.domain.BaseEntity;
import com.ruoyi.common.core.domain.model.LoginUser;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 区服任务对象 server_task
 *
 * @author ghostmen
 * @date 2024-10-31
 */
@Data
@ApiModel(description = "区服任务新增对象")
public class ServerTaskAddDTO extends BaseDTO {
    private static final long serialVersionUID = 1L;

    /**
     * 任务名称
     */
    @NotBlank(message = "任务名称不能为空")
    @ApiModelProperty(value = "任务名称", required = true)
    private String taskName;

    /**
     * 区服id
     */
    @NotNull(message = "区服id不能为空")
    @ApiModelProperty(value = "区服id", required = true)
    private Long regionId;

    /**
     * 区服名称
     */
    @NotBlank(message = "区服名称不能为空")
    @ApiModelProperty(value = "区服名称", required = true)
    private String regionName;

    /**
     * 资历
     */
    @NotNull(message = "资历不能为空")
    @ApiModelProperty(value = "资历", required = true)
    private Integer score;

    /**
     * 类型
     */
    @NotBlank(message = "类型不能为空")
    @ApiModelProperty(value = "类型", required = true)
    private String teamType;

    /**
     * 价格
     */
    @Min(value = 0, message = "订单价格最小不能小于0")
    @NotNull(message = "价格不能为空")
    @ApiModelProperty(value = "价格", required = true)
    private BigDecimal price;

    /**
     * 优惠价
     */
    @ApiModelProperty(value = "优惠价", required = false)
    private BigDecimal discountPrice;

    /**
     * 介绍
     */
    @ApiModelProperty(value = "介绍", required = false)
    private String introduce;

    /**
     * 登录用户
     */
    @ApiModelProperty(value = "登录用户", hidden = true)
    private LoginUser loginUser;

}
